<?php

class UpdateClientAction extends Action{
	
	function execute( HttpRequest $request ){
			
				
			$DAOfactory=AbstractDAOFactory::getDaoFactory(AbstractDAOFactory::MYSQL);
			$clientDAO=$DAOfactory->getClientDAO();
			$param=array('sexe','nom','prenom','adresse','cp','ville','telephone','login','mdp','mail');
			
			$resultat=$this->isFieldsFilled($param,$request);
			
		if ($resultat==true){
			//on hydrate notre objet avec les donnes recues
			$client=new Client();
			$client->setId($request->getParameter('idclient'));
			$client->setSexe($request->getParameter('sexe'));
			$client->setNom($request->getParameter('nom'));
			$client->setPrenom($request->getParameter('prenom'));
			$client->setAdresse($request->getParameter('adresse'));
			$client->setCodePostal($request->getParameter('cp'));
			$client->setVille($request->getParameter('ville'));
			$client->setTelephone($request->getParameter('telephone'));
			$client->setLogin($request->getParameter('login'));
			$client->setMotDePasse($request->getParameter('mdp'));
			$client->setEmail($request->getParameter('mail'));
		
				//on update
				$clientDAO->update($client);
				
				$request->addObject('client',$client);
				
				// On affiche un message à l'utilisateur lui disant que son compte est bien modifie
				$request->addMessage("La modificiation de votre compte s'est deroulee avec success");
				return self::ACTION_DEFAULT;
			
			 
		}
		else{
				
			$client=new Client();
			$clientTab=$clientDAO->getById($request->getParameter('idclient'));
			$client=$clientTab[0];
			$request->addObject('client',$client);
			$request->addMessage('Tout les champs ne sont pas correctement saisis');
			return self::ACTION_DEFAULT;
		}
		

	   
		
	}
	
	function isFieldsFilled(Array $param,$request){
		//on fait une simple verif de la présence des données coté serveur au cas ou l'utilisateur aurait
		//désactivé le javscript l'essentiel des controles etant realise cote client
		$retour=true;
		foreach($param as $cle=>$valeur){
			if ($request->getParameter($valeur)==""){
				$retour=false;
			}
		}
		return $retour;
	}
		
	

	
}